/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package analisador.lexico;

/**
 *
 * @author dem_danilo
 */
public class Registro {

    private String cadeia;
    private String tipo;
    private String categoria;
    private Object valor;
    private boolean ponteiro;
    private String paiRegistro;
    private String filhoRegistro;
    private String funcaoPai;   
    private boolean declaraTipo = false;
    static int contador = 0;
    static int contadorArgumentos = 0;

    public Registro(){}
    
    public Registro(Registro r) {
        this.cadeia = r.getCadeia();
        this.tipo = r.getTipo();
        this.categoria = r.getCategoria();
        this.valor = r.getValor();
        this.ponteiro = r.isPonteiro();
        this.paiRegistro = r.getPaiRegistro();
        this.filhoRegistro = r.getFilhoRegistro();
        this.funcaoPai = r.getFuncaoPai();
    }
    
    

    public boolean isPonteiro() {
        return ponteiro;
    }

    public void setPonteiro(boolean ponteiro) {
        this.ponteiro = ponteiro;
    }

    public String getCadeia() {
        return cadeia;
    }

    public void setCadeia(String cadeia) {
        this.cadeia = cadeia;
    }

    public String getCategoria() {
        return categoria;
    }

    public void setCategoria(String categoria) {
        this.categoria = categoria;
    }

    public String getTipo() {
        return tipo;
    }

    public void setTipo(String tipo) {
        this.tipo = tipo;
    }

    public Object getValor() {
        return valor;
    }

    public void setValor(Object valor) {
        this.valor = valor;
    }


    public String getFilhoRegistro() {
        return filhoRegistro;
    }

    public void setFilhoRegistro() {
        this.filhoRegistro = "registro" + contador;
    }

    public String getPaiRegistro() {
        return paiRegistro;
    }

    public void setPaiRegistro() {
        this.paiRegistro = "registro" + contador;
    }
    public void setPaiRegistro(int p) {
        this.paiRegistro = "registro" + p;
    }

    public boolean isDeclaraTipo() {
        return declaraTipo;
    }

    public void setDeclaraTipo(boolean declaraTipo) {
        this.declaraTipo = declaraTipo;
    }
    
    public void setFilhoRegistro(String regs) {
        this.filhoRegistro = regs;
    }

    public void setPaiRegistro(String regs) {
        this.paiRegistro = regs;
    }

    public String getFuncaoPai() {
        return funcaoPai;
    }

    public void setFuncaoPai(String funcaoPai) {
        this.funcaoPai = funcaoPai;
    }

    @Override
    public String toString() {
        return "Registro{" + "cadeia=" + cadeia + ", tipo=" + tipo + ", categoria=" + categoria + ", valor=" + valor + ", ponteiro=" + ponteiro + ", paiRegistro=" + paiRegistro + ", filhoRegistro=" + filhoRegistro + ", funcaoPai=" + funcaoPai + ", declaraTipo=" + declaraTipo + '}';
    }

    
    
    
}
